package edu.hrbu.trade01.util;



import edu.hrbu.trade01.entity.Menu;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 徐登宇
 */
public class MenuUtil {

    // 获取树形菜单列表
    public static ArrayList<Menu> buildTree(List<Menu> sysMenuList, Object... i) {

        // 创建树形菜单【初始是空列表】
        ArrayList<Menu> trees = new ArrayList<>();
        for (Menu menu : sysMenuList) {
            // 如果是一级菜单
            if (menu.getPid() == 0) {
                // 进行递归遍历
                trees.add(findChild(menu, sysMenuList));
            }
        }


        if (i.length==0) {
            Menu menu = new Menu();
            menu.setTitle("常规操作");
            menu.setIcon("fa fa-address-book");
            menu.setChild(trees);
            ArrayList<Menu> menuListFinal = new ArrayList<>();
            menuListFinal.add(menu);
            trees = menuListFinal;
        }


        return trees;
    }

    // 寻找子菜单
    private static Menu findChild(Menu menu, List<Menu> nodes) {
        // 先为其分配空的子菜单【后续通过递归判断再向其中添加数据】
        menu.setChild(new ArrayList<>());
        for (Menu node:nodes) {
            if (node.getPid().longValue()==menu.getId().longValue()) {
                if (menu.getChild().isEmpty()) menu.setChild(new ArrayList<>());
                menu.getChild().add(findChild(node, nodes));
            }
        }
        return menu;
    }

}
